import axios from 'axios'

// 创建axios实例
const http = axios.create({
  baseURL: 'http://localhost:8080',
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
    // 'Authorization': 'Bearer ' + token 
  }
})

// 请求拦截器
http.interceptors.request.use(
  config => {
    console.log('发送房源请求:', config)
    const token = localStorage.getItem('token')
    if (token) {
      config.headers.Authorization = `${token}`
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器
http.interceptors.response.use(
  response => {
    console.log('房源响应数据:', response)
    return response.data
  },
  error => {
    console.error('房源请求错误:', error)
    return Promise.reject(error)
  }
)

/**
 * 获取首页周边房源推荐数据
 * @returns {Promise<import('@/types/room').IRoomRecommendList>}
 */
export const getRoomRecommendListApi = () => {
  return http.get('/house/nearbyHouses').catch(error => {
    console.error('获取房源推荐数据失败:', error)
    // 返回模拟数据
    // return [
    //   {
    //     id: '1',
    //     housePicture: '/src/assets/imgs/room_text_bg.png',
    //     tags: [{ name: '整租' }],
    //     houseTitle: '朝阳·吉祥公寓',
    //     address: '朝阳，吉祥公寓',
    //     rentArea: '42',
    //     rentPriceUnit: '月',
    //     rentPriceListing: '1900'
    //   },
    //   {
    //     id: '2',
    //     housePicture: '/src/assets/imgs/room_text_bg.png',
    //     tags: [{ name: '整租' }],
    //     houseTitle: '房东直租，巴拉巴拉卡...',
    //     address: '朝阳，吉祥公寓',
    //     rentArea: '42',
    //     rentPriceUnit: '月',
    //     rentPriceListing: '1900'
    //   },
    //   {
    //     id: '3',
    //     housePicture: '/src/assets/imgs/room_text_bg.png',
    //     tags: [{ name: '整租' }],
    //     houseTitle: '朝阳·吉祥公寓',
    //     address: '朝阳，吉祥公寓',
    //     rentArea: '42',
    //     rentPriceUnit: '月',
    //     rentPriceListing: '1900'
    //   },
    //   {
    //     id: '4',
    //     housePicture: '/src/assets/imgs/room_text_bg.png',
    //     tags: [{ name: '整租' }],
    //     houseTitle: '房东直租，巴拉巴拉卡...',
    //     address: '朝阳，吉祥公寓',
    //     rentArea: '42',
    //     rentPriceUnit: '月',
    //     rentPriceListing: '1900'
    //   },
    //   {
    //     id: '5',
    //     housePicture: '/src/assets/imgs/room_text_bg.png',
    //     tags: [{ name: '整租' }],
    //     houseTitle: '朝阳·吉祥公寓',
    //     address: '朝阳，吉祥公寓',
    //     rentArea: '42',
    //     rentPriceUnit: '月',
    //     rentPriceListing: '1900'
    //   },
    //   {
    //     id: '6',
    //     housePicture: '/src/assets/imgs/room_text_bg.png',
    //     tags: [{ name: '整租' }],
    //     houseTitle: '房东直租，巴拉巴拉卡...',
    //     address: '朝阳，吉祥公寓',
    //     rentArea: '42',
    //     rentPriceUnit: '月',
    //     rentPriceListing: '1900'
    //   }
    // ]
  })
}

/**
 * 获取房源列表数据(搜索/筛选)
 * @param {import('@/types/room').IGetRentRoomListParams} params - 搜索参数
 * @returns {Promise<import('@/types/room').IGetRentRoomListResponse>}
 */
export const getRentRoomListApi = (params) => {
  return http.get('/house/search', { params }).catch(error => {
    console.error('获取房源列表数据失败:', error)
    // 返回模拟数据
    // const mockRooms = Array.from({ length: params.limit || 10 }, (_, index) => ({
    //   id: `${(params.page - 1) * params.limit + index + 1}`,
    //   housePicture: '/src/assets/imgs/room_text_bg.png',
    //   tags: [
    //     { name: index % 3 === 0 ? '整租' : index % 3 === 1 ? '合租' : '独立卫浴' },
    //     ...(index % 2 === 0 ? [{ name: '近地铁' }] : [])
    //   ],
    //   houseTitle: index % 2 === 0 ? '朝阳·吉祥公寓' : '房东直租，巴拉巴拉卡...',
    //   address: '朝阳，吉祥公寓',
    //   rentArea: `${Math.floor(Math.random() * 50) + 20}`,
    //   rentPriceUnit: '月',
    //   rentPriceListing: `${Math.floor(Math.random() * 3000) + 1000}`
    // }))

    // return {
    //   records: mockRooms,
    //   total: 28,
    //   size: params.limit || 10,
    //   current: params.page || 1,
    //   pages: Math.ceil(28 / (params.limit || 10))
    // }
  })
}

/**
 * 获取房源详情
 * @param {string} id - 房源ID
 * @returns {Promise<import('@/types/room').IRoomDetail>}
 */
export const getRoomDetailApi = (id) => {
  return http.get(`http://localhost:8080/house/detail/${id}`).catch(error => {
    console.error('获取房源详情失败:', error)
    // 返回模拟数据
    // return {
    //   id: id,
    //   houseTitle: '整租·芳群园四区 1室1厅',
    //   address: '47m² | 南北 | 新备 方庄',
    //   rentArea: '47',
    //   rentPriceListing: '4700',
    //   rentPriceUnit: '月',
    //   housePicture: '/src/assets/imgs/room_text_bg.png',
    //   tags: [
    //     { name: '整租' },
    //     { name: '近地铁' }
    //   ],
    //   distanceInfo: '距离5号线 宋家庄站800m',
    //   description: '这是一套精装修的一室一厅，位于芳群园四区，交通便利，周边配套齐全。房间朝南，采光良好，家具家电齐全，拎包入住。'
    // }
  })
}

export default http

/**
 * 添加房源
 * @param {Object} payload - 房源信息
 * @param {string} payload.houseTitle
 * @param {string} payload.address
 * @param {number} payload.rentArea
 * @param {number} payload.rentPriceListing
 * @param {string} payload.rentPriceUnit
 * @param {string} payload.housePicture - 已上传图片的URL
 * @param {string} payload.description
 * @param {string} payload.distanceInfo
 * @param {number} payload.provinceld
 * @returns {Promise<any>}
 */
export const addHouseApi = (payload) => {
  return http.post('/house/add', payload)
}